The present invention relates to computer programming, and deals more particularly with automated harvesting of patterns.
In the general sense, a pattern is a recurring abstraction that specifies a configuration of objects and relationships among them. The relationships may be of various types, including sequential, spatial, temporal, logical, mathematical, and so forth. A pattern can be said to represent a common solution to a common problem in a given context.
In the context of software development, patterns are used extensively to solve small-scale as well as large-scale problems in the design, modeling, implementation, deployment, and/or maintenance of software systems. The application of a pattern to, or within, a software system causes the system to be structured, and to behave, in certain ways as dictated by or consistent with the pattern.